package com.mmy.service.plane.impl;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.mmy.controller.UtilConstants;
import com.mmy.dao.plane.TPlaneBaseRepository;
import com.mmy.dao.plane.VPlaneBaseRepository;
import com.mmy.domain.plane.TPlaneBase;
import com.mmy.domain.plane.VPlaneBase;
import com.mmy.domain.sys.TSysUser;
import com.mmy.service.ServiceCommon;
import com.mmy.service.plane.PlaneBaseService;

@Service
public class PlaneBaseServiceImpl implements PlaneBaseService {

	@Autowired
	TPlaneBaseRepository tPlaneBaseRepository;
	@Autowired
	VPlaneBaseRepository vPlaneBaseRepository;
	@Autowired
	ServiceCommon common;

	/**
	 * 后台航班信息管理中显示全部 异步加载表格
	 *
	 * @author 创建人 hanxl 整理 修改人hanxl
	 * @date 创建日期 2020.11.19 修改时间2021.02.22
	 */
	public List<VPlaneBase> findByOrgID(String strPlaneName, String strPlaneOrgName, String strTravelOrgName,
			int startIndex, int count) {
		if (strPlaneName == null)
			strPlaneName = "";
		if (strPlaneOrgName == null)
			strPlaneOrgName = "";
		if (strTravelOrgName == null)
			strTravelOrgName = "";

		List<VPlaneBase> lstPlaneBase = new ArrayList<VPlaneBase>();

		lstPlaneBase = vPlaneBaseRepository.findSearchALL(strPlaneName, strPlaneOrgName, strTravelOrgName, startIndex,
				count);

		return lstPlaneBase;

	}

	/**
	 * 后台航班信息管理中显示自己公司的航班信息如果为管理员显示全部 分页
	 *
	 * @author 创建人 hanxl 整理 修改人hanxl
	 * @date 创建日期 2020.11.19 修改时间2021.02.22
	 */
	public int queryBaseCount(String strPlaneName, String strPlaneOrgName, String strTravelOrgName) {
		if (strPlaneName == null)
			strPlaneName = "";
		if (strPlaneOrgName == null)
			strPlaneOrgName = "";
		if (strTravelOrgName == null)
			strTravelOrgName = "";

		int count = 0;

		count = vPlaneBaseRepository.countALL(strPlaneName, strPlaneOrgName, strTravelOrgName);

		return count;
	}

	/**
	 * 函数功能说明： 新建航班信息
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人 shangzl 修改人hanxl
	 * @date 创建日期 修改时间2021.03.17
	 */
	public void createPlaneBase(TPlaneBase tPlaneBase, TSysUser sessionSysUser) {
		// TODO Auto-generated method stub
		// 获取最大值
		tPlaneBase.setPlaneID(common.createBaseCode(UtilConstants.TableName.T_PLANE_BASE));
		tPlaneBase.setCreateDate(new Date());
		tPlaneBase.setCreator(sessionSysUser.getUserName());
		tPlaneBase.setSpare1(String.valueOf(sessionSysUser.getOrgID()));
		tPlaneBaseRepository.save(tPlaneBase.getPlaneID());
		tPlaneBaseRepository.save(tPlaneBase);
	}

	/**
	 * 获取最大值
	 * 
	 * @return 返回值说明 最大ID
	 * @author 创建人 dingxd 修改人hanxl
	 * @date 创建日期 2020.11.17 修改时间 2021.03.17
	 */
	public int getMaxPlaneID() {
		// 流水号
		Object objCode = tPlaneBaseRepository.getMaxPlaneID();
		int iID = 0;
		if (objCode != null) {
			iID = Integer.parseInt(objCode.toString());
		}
		return iID;
	}

	/**
	 * 函数功能说明： 通过ID查询
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人hanxl
	 * @date 创建日期2021.03.17
	 */
	public TPlaneBase findByPlaneID(int iPlaneID) {
		return tPlaneBaseRepository.findByPlaneID(iPlaneID);
	}

	/**
	 * 函数功能说明：修改航班信息
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @throws 异常处理说明
	 * @author 创建人hanxl
	 * @date 创建日期2021.03.17
	 */
	public void updatePlaneBase(TPlaneBase tPlaneBase, TSysUser sessionSysUser) {
		// 定义一个新的实体类对象
		TPlaneBase dbPlaneBase = tPlaneBaseRepository.findByPlaneID(tPlaneBase.getPlaneID());
		dbPlaneBase.setOrgID(tPlaneBase.getOrgID());
		dbPlaneBase.setPlaneName(tPlaneBase.getPlaneName());
		dbPlaneBase.setMemo(tPlaneBase.getMemo());
		dbPlaneBase.setModifyDate(new Date());
		dbPlaneBase.setReviser(sessionSysUser.getUserName());
		tPlaneBaseRepository.save(dbPlaneBase);
	}

	/**
	 * 函数功能说明：查询全部
	 *
	 * @param 参数说明
	 * @return 返回值说明 jsp页面
	 * @author 创建人 hanxl 修改人hanxl
	 * @date 创建日期 2020.11.18 修改时间2021.03.16
	 */

	public List<VPlaneBase> findAll() {
		// TODO Auto-generated method stub
		return vPlaneBaseRepository.findAll();
	}

}
